/*
 * @Description: 角色api 类型
 * @Author: chenju
 * @Date: 2021-11-08 15:37:36
 * @LastEditors: qingyang
 * @LastEditTime: 2023-07-07 16:44:03
 */
import { moduleTypeEnum, releaseTypeEnum } from '@/constants/enum';

// 信息发布列表 请求参数
export interface GetReleaseListParams {
  // 系统公告：SYSTEM_NOTICE；帮助中心：
  module?: string;
  // 标题
  title?: string;
  // 发布状态 草稿：DRAFT；已发布：PUBLISHED
  releaseStatus?: string;
  sendType?: string;
}

// 信息发布列表 响应参数
export interface GetReleaseListResultModel {
  // 角色id
  id: number;
  sendType: keyof typeof releaseTypeEnum;
  // 公告类型
  announcementType?: string;
  // 公告标题
  title: string;
  subtitle: string;
  // 文件名称
  fileName?: string;
  content: string;
  // 文件地址
  fileUrl: string;
  // 发布板块
  module: string;
  // 附件个数
  attachmentNum: string;
  // 发布状态 草稿：DRAFT；已发布：PUBLISH
  releaseStatus: string;
  // 发布时间
  releaseTime: string;
  // 发布范围 全部：ALL；定向：DIRECTIONAL
  releaseRange: string;
  // 创建人
  releasePeopleName: string;
  // 创建时间
  createTime: string;
  // 置顶 false：未置顶；true：置顶
  placedTop: string;
  // new 标志 false：不显示new标志；true：显
  newFlag: string;
}

// 新增发布 请求参数
export interface CreateReleaseParams {
  id?: string;
  // 发布板块 系统公告：SYSTEM_NOTICE；帮助
  module: string;
  // 标题
  title?: string;
  // 副标题
  subtitle?: string;
  // 正文
  content?: string;
  // 发布范围 全部：ALL 定向：DIRECTIONAL
  releaseRange?: string;
  // 发布时间
  releaseTime?: string;
  // 组织编码(发布范围是定向的时候必传)，多个组织编码用逗号隔开
  organizationCode?: string;
  // 发布时间类型
  releaseTimeType?: string;
  // 文件集合
  files?: {
    fileName: string;
    fileUrl: string;
  };
}

// 发布 请求参数
export interface ReleaseParams {
  id?: string;
  // 发布板块 系统公告：SYSTEM_NOTICE；帮助
  module: string;
  // 标题
  title?: string;
  // 副标题
  subtitle?: string;
  // 正文
  content?: string;
  // 发布范围 全部：ALL 定向：DIRECTIONAL
  releaseRange?: string;
  // 发布时间
  releaseTime?: string;
  // 组织编码(发布范围是定向的时候必传)，多个组织编码用逗号隔开
  organizationCode?: string;
  // 发布时间类型
  releaseTimeType?: string;
  // 文件集合
  files?: {
    fileName: string;
    fileUrl: string;
  }[];
}

// 发布 请求参数
export interface GetReleaseInfoResult {
  // 发布板块 系统公告：SYSTEM_NOTICE；帮助
  sendType: keyof typeof releaseTypeEnum;
  module: string;
  // 标题
  title: string;
  // 副标题
  subtitle: string;
  // 正文
  content: string;
  // 发布范围 全部：ALL 定向：DIRECTIONAL
  releaseRange: string;
  // 发布时间
  releaseTime: string;
  // 组织编码(发布范围是定向的时候必传)，多个组织编码用逗号隔开
  organizationCode: string;
  // 发布时间类型
  releaseTimeType: 'IMMEDIATE' | 'TIMING';
  // 业务模块：全部（ALL）,碳足迹（FOOTPRIN
  businessModule: string;
  // 文件集合
  files: {
    fileName: string;
    fileUrl: string;
  }[];
}

export interface IParamsSaveSystem {
  id?: number;
  // 发布板块 系统公告：SYSTEM_NOTICE；帮助
  module: keyof typeof moduleTypeEnum;
  sendType: keyof typeof releaseTypeEnum | '';
  // 标题
  title: string;
  // 副标题
  subtitle?: string;
  // 正文
  content?: string;
  // 发布时间
  releaseTime: string;
  // 发布时间类型
  releaseTimeType?: 'IMMEDIATE' | 'TIMING';
  releaseStatus: 'DRAFT' | 'PUBLISHED';
  // 文件集合
  files?: {
    fileName: string;
    fileUrl: string;
  }[];
}
